System and method for modifying links within a web site

ABSTRACT

An invention for customizing a web site by gathering information from a web site visitor&#39;s sessions while the user is using the web site. The visitor&#39;s session information is compared with expected visitor behavior, based on the present structure of the web site. Using pre-programmed basic comparison rules and computer based mathematical models, matrices are used to represent statistical information about the visitor&#39;s sessions on the web site. The statistical information is used to extract visitor behavior which was unexpected (anomalies). Anomalies are grouped into recommendations. These recommendations are used to automatically customize the web site. In the alternative, information is provided to the web site administrator to customize the web site to be more efficient and visitor friendly, maximizing the operation of the Web site and promoting more frequent visits.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation and claims the benefit of U.S. patentapplication Ser. No. 09/778,562, filed 7 Feb. 2001.

TECHNICAL FIELD

This invention relates to customizing Internet web sites and, moreparticularly, to customizing Internet web sites based on the visitationbehavior of visitors to that Internet web site in a manner to improvethe operation of the Internet web site.

BACKGROUND OF THE INVENTION

The world wide web has exploded with new web sites. Today, mostbusinesses want their product advertisements to reach the world marketrather than the limited audience available before the Internet wasinvented. Regardless of how many potential customers visit the web siteof the business, the web site must retain the attention of thosepotential customers. Even more important than the initial attraction,the web site must be constructed in a way that makes the customer wantto stay and access more products, images, and items the web site ownerwishes the visitor to access during their visit. If the web site is notinitially constructed in a manner to allow or entice the visitor toaccess the objects of interest, there should be a tool to evaluate thevisitor's activity on the web site and implement or offer solutions tomodify the web site. The modification suggestions should allow the website to become more efficient and easier to use for visitors, whichwould likely entice the visitors to make their user session longer andpurchase more products. Unlike a physical store that a customer mayvisit, which has the entrance and exit pre-designed and somewhatcontrolling the visit, a web site may be exited at any time, and oftenis, if the web site visitor is frustrated at the complexity ofnavigating the objects of interest.

Despite the efforts of the prior art, there is still a need for a methodthat implements an accurate diagnosis of the web site, deliverssolutions to repair the web site in an efficient manner, presents thosesolutions in a manner that the web site may be accurately changed toaddress the problems, or alternatively repairs the problemsautomatically.

SUMMARY OF THE INVENTION

The present invention overcomes the above described void in the priorart by utilizing a method, device, and algorithm to track and bundle theuser interactions with the web site structure via a set of matrices.Initially, the web site itself is analyzed for its present structure.Analyzing the web site results in a list of pages that are included inthe web site and how the pages are connected to each other (the pagesinter-relationship). The invention uses a web-robot class program torecord this information (one example for a web-robot program is theAcme-Spider, available at:http://www.acme.com/java/software/Acme.Spider.html). A web-robottraverses the web starting at a given Uniform Resource Locator (networkaddresses). It fetches hypertext markup language (HTML) files and parsesthem for new network addresses to look at. All files it encounters, HTMLor otherwise, are returned and may be recorded.

User sessions are used to model user interactions with the web site.User sessions are usually defined collectively by Identity (who isaccessing the site), Location (which pages each user accessed, and inwhat order), and Time (when did the access occur). In other words, auser session can be defined roughly as a series of continuous accessesto the site done by the same user. To determine what constitutes aseries of continuous accesses to the site, an approximation method (anInternet web-robot program) is used to track and approximate the usersessions.

Subsequently, all the user sessions are analyzed according toweb-specific parameters. These web-specific parameters include:distance, step, and class. This analysis, along with a set of basicrules, and the structure of the web site, are used in forming a seriesof matrices and structures to represent the statistical information. Thestatistical information is represented such that inefficiencies in theInternet web site (web site) may be determined and eliminated manuallyor automatically.

Two such inefficiencies, also known as anomalies, are objects ofinterest not having direct connections which should have a directconnection, and objects which do not need a direct connection that havea direct connection. A direct connection is when two items of interestor web pages (objects of interest) may be accessed with a single click,typically through a hyperlink. Anomalies in the design are the result ofa difference between the designer intent and expectation and the actualsite visitors behavior. Any difference between the expected behavior andthe actual behavior is an anomaly, because the designer of the web sitedid not intend it. Rules may be applied to change the web siteautomatically in a way that reduces or removes the anomaly. Generatinganomaly reports assist the designer in eliminating the anomalies, andprovide recommendations to improve the web site. For example, assumethat a web-based sport clothing retailer site has a home page (generallythe initial page of the web site) that links to three pages thatadvertise sport shoes, shirts, and pants. The page that advertisesshirts has a link to a page that advertises hats, while no such linkexists in the other two pages. Yet, by analyzing the actual visitorbehavior, it is found that 30% of the people, who accessed the sportsshoes and the pants pages, also accessed the hat page. This is ananomaly, because the site designers did not expect users interested insports shoes and pants to also be interested in hats (otherwise, theywould have designed the site structure differently). Therefore, theinvention will recommend either moving the link to the hat page to thehome page, or providing a link to the hat page from all the three subpages. Adding and removing links from the pages automatically to reducethe anomaly may also be performed.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a structure diagram illustrating an exemplary embodiment ofthe web site construction and the interconnections of the objects ofinterest within the web site.

FIG. 2 is a data structure diagram illustrating the user sessions on aweb site that would be tracked and recorded in accordance with anexemplary embodiment of the present invention.

FIG. 3 is an exemplary embodiment of the present invention illustratingthe concept of Step.

FIG. 4 illustrates the concept of class in an exemplary embodiment ofthe invention.

FIG. 5 is a block diagram illustrating the operation of an exemplaryembodiment of the invention.

DETAILED DESCRIPTION

Now referring in detail to the drawings, wherein like numerals refer tolike parts throughout the several views. Prior to tracking and recordinguser sessions, and applying them to repair anomalies of the web site,the construction of the web site must be analyzed and utilized to setupdata matrices and structures. It is the information from these matricesand structures which is mapped and analyzed to repair the web site.Mapping the data tracked during the user's sessions involves properlyputting the appropriate data in the appropriate matrix or structure.Thus, an accurate accounting of the parameters of the web site and theuse of matrices and structures to store the data is essential.

FIG. 1 is a structure diagram illustrating an exemplary embodiment ofthe web site construction and the interconnections of the objects ofinterest within the web site. The first data to gather in analyzing theconstruction of a web site is a list of pages that are included in thesite. In the case of the web site construction illustrated in FIG. 1,each block (102, 104, 106, 108, 110, 112, 114, and 116) represents anobject of interest. In the broader sense, the term “objects of interest”refers to any kind of user access activity that may be recorded, and/ortracked. Currently, an object of interest is used to describe either apage or any other item (such as images, videos, etc.), that isaccessible from the site, and any script of interest that may have beenexecuted on behalf of the user. A list is kept of all objects ofinterest for further use. For simplicity of illustration, in FIG. 1,each object of interest is a web-page, which is the visitor experienceof a collection of accesses to the web site. The web site constructionanalysis is recorded in memory (preferably read only memory) or storedin a database, and contains the following parameters:

1. A numeric key (or identifier)—a numeric representative identifier.

2. The primary name of the page—name of the page expressed inalphanumeric characters.

3. Aliases to the name of the object—the alias to the name of the objectof interest is an alternative representation to access that object ofinterest.

4. A list of all the children of a certain page—all the pages that maybe reached directly from the current page. For example, object B 104,object C 106 and object D 108 are all the children of object A 102.These are the objects that may be reached directly by clicking on a linkfrom object A 102. Likewise, object E 110 and object F 112 are thechildren of object B 104, object G 114 is the child of object C 106, andobject H 116 and object E 110 are the children of object D 108.

5. A list of all the parents of a certain objects—A parent is an objectthat can be used to reach a certain page with a direct link. In ahierarchy of objects, the parent objects would be accessible prior tothe children objects, thus closer to the web site homepage. For example,object B 104 is the parent of both object E 110 and object F 112.Likewise, object C 106 is the parent of object G 114, object D 108 isthe parent of object E 110 and object H 116, and object A 102 is theparent of object B 104, object C 106, and object D 108.

6. A hash table that stores object distances—object distance is thesmallest number of clicks or links needed to get from one object ofinterest to another object of interest. For example, a user can get fromobject A 102 to object B 104 by clicking on a link in page A 102.Therefore, the distance between object A 102 and object B 104 is 1. Auser can get from object A 102 to object E 110 by clicking on a link inobject A 102, getting to object B 104, and then clicking on a link inobject B 104 to get to object E 110. Thus, the distance between object A102 and E 110 is 2. A user can get from object C 106 to object E 110 byclicking on a link to object A 102, then clicking on a link to object B104, and finally, clicking on a link to object E 110. Thus, the resultis a distance of 3 from object C 106 to object E 110. A user can getfrom object B 104 to object D 108 in two ways: either via object E 110or via object A 102. In both cases the distance is 2.

A full descriptions of the analysis for the web site illustrated in FIG.1 would contain numeric keys, the primary name of the objects, aliasesto the names of objects, and a hash table of all the distances betweeneach of the objects of interest object A 102, object B 104, object C106, object D 108, object E 110, object F 112, object G 114, and objectH 116. In addition, each of the aforementioned objects of interest'schildren and parents would be stored as explained above.

Subsequent to the analysis and storage of the web site constructionparameters, the invention records the web site's user interactions (usersessions). There are three primary dimensions of users sessions with aweb site:

1. Identity—who is accessing the site?

2. Location—which pages did each user access, and in what order?

3. Time—when did the access occur?

These three dimensions are incorporated into a single entity called asession. A session can be defined as a series of continuous accesses tothe site done by the same user. Unfortunately, it is difficult (if notimpossible) to determine exactly what constitutes a series of continuousaccesses to the site, as it involves knowing what a user's intentionswere when interacting with the site. To overcome this problem, a methodis used by which educated guesses are use to approximate the sessions.Naturally, the approximation method is closely coupled with the means bywhich the user activity is tracked.

One embodiment of the invention uses HTTP logs to record and track useractivity and construct sessions of interaction with the web site. Itshould be noted that the use of HTTP logs could be substituted by anyother method to record user behavior, or a combination of severalmethods. Examples of these methods can be the use of cookies, the use ofpacket-sniffers, the use of embedded objects that send accessinformation to the server (also known as web bugs), etc. With HTTP logs(and without using cookies), identity is determined by user's IPaddress, the object the user requested determines location, and the timestamp of the access recorded in the HTTP log determines the time.

FIG. 2 is a data structure diagram illustrating the user sessions on aweb site that would be tracked and recorded in accordance with anexemplary embodiment of the present invention. Tracking the user sessioninvolves collecting various data concerning the user's progress whilevisiting the web site. When to start a new user session may be oneproblem with using HTTP logs. In one exemplary embodiment, pagesaccessed by user are grouped into one list and a decision whether tostart a new session is made, depending on the time gap between twoconsecutive accesses. If the gap is more than a pre-determined timeperiod, the session is broken into two different sessions.

Another problem with HTTP logs is that they record only accesses to theserver. Using the HTTP logs, it may be difficult to record users who usethe browser cache devices (stored accesses to pages that have alreadybeen accessed recently) to re-accesses a page. This problem can beovercome by using the shortest-distance between two accesses as a way toestimate the progress of the session.

According to FIG. 2, the recorded activity constitutes 7 accesses, doneby 2 users, which are identified as user $ and user @ (IP address may beused to determine user identification). Accesses 202, 208, 210, 212, and214 were done by user @, while accesses 204 and 206 were done by user $.Assume the website is constructed of three objects of interest, object A230, object B 232, and object G 234. Further assume that thepre-determined allowed gap between two accesses within one session is100 units of time. The gap between access 208 and access 210 is 145−26=119>100. Therefore, access 210 belongs to a new session, different fromaccess 208. The result is three different sessions, depicted at thebottom part of FIG. 2. Session 1 constitutes one session by user @ andconsists of blocks 216 and 218. In Session 1, user @ accessed object A230 and then object B 232. Session 2 is a session by user $ and consistsof blocks 220 and 222. In Session 2, user $ accessed object A 230 andalso object B 232. Finally, Session 3 by user @, consists of block 224,block 226, and block 228. In Session 3, user @ accessed object A 224,then object B 232, and finally object G 228.

FIG. 3 is an exemplary embodiment of the present invention illustratingthe concept of Step. Step is the distance between two objects ofinterest that are actually accessed during a user session. Thus, thedistance of the path actually utilized to access one object from anotherduring a user session. In FIG. 3, assume that a user accessed object A302, then object B 304 and finally object E 310. The number of stepsbetween objects A 302 and object E 310 is 2, because the sum of thedistances between objects A 302 and B 304, and objects B 304 and objectE 310 is 1+1=2.

In another example, suppose the actual user session was object A302→object B 304→object A 302→object C 306. In this exemplary embodimentin which HTTP logs are relied on to reconstruct the sequence of accessesfor each user, this user session may be recorded by the HTTP logs as asession:

object A 302→object B 304→object C 306.

Despite the absence of a direct connection between objects B and C, theyappear in the recorded session consecutively. This example demonstratesone of the disadvantages of using HTTP logs to reconstruct the usersession. The actual session, object A 302→object B 304→object A302→object C 306, was not recorded because object A 302 was accessedtwice during the session. The second time the user accessed object A302, the object was already present in the user's local browser cache.The browser did not have to initiate a request to the site HTTP serverin order to retrieve the object. Thus, the access to object A 302 wasrecorded once rather than twice. To alleviate this problem and to betterreconstruct the users sessions, an embodiment of the present inventionuses the distance between two objects to define the number of stepsbetween two objects. In FIG. 3, the number of steps between object B 304and object C 306 is 2, as it is the distance between the two objects.Thus, the total number of steps between object A 302 and object C 306 inthis session is 3.

FIG. 4 illustrates the concept of class in an exemplary embodiment ofthe invention. Dividing web pages into classes is another way tocategorize web pages. The term class is used to designate the distanceof a certain object from the entrance page of the site, or the “officialhomepage” (homepage) of the site. The assumption behind the use of theclass concept is that most users will start their interaction with theweb site with this page and proceed onward. The base object 402, thehomepage has class 0. Objects B 404, C 406, and D 408, which aredirectly linked from the base page, are at class 1. Objects E 410, F412, G 414, and H 416, which are at distance of 2 from the base page,constitute class 2.

FIG. 5 is a block diagram illustrating the operation of an exemplaryembodiment of the invention. This exemplary embodiment utilizes theinvention on a host server, wherein the web site structure is alreadyknown, shown as web site structure 505. In an alternative exemplaryembodiment the invention could be utilized on a far-server, whereincommunication with the

far-server containing the web site could be established. Afterestablishing contact, this embodiment would parse the web site to obtainthe web site structure 505. Parsing is the process by which theinvention gathers data about various aspects of the web site. Witheither embodiment, the web site structure 505 would include data aboutthe connectivity of its objects of interest and other parameters, suchas, but not limited to the distance data, the links data, class data,identifiers, names and aliases to objects of interest, children andparent relationships to certain pages, and network addresses.

FIG. 5 illustrates the activity 510 associated with the web site. Thisactivity 510 is established by tracking the activity 510 of the userswhich use the web site. This embodiment has the ability to specify thespecification it would employ in tracking the activity on the web site.This allows versatility in how the user sessions are tracked, and whatparameters are employed to track the user activity on the web site. Thetracking of the activity 510 associated with the web site may bepackaged into user sessions, usually defined collectively by theidentity of the user accessing the site, the location of the pages eachuser accessed, the order those pages were accessed, and the time whichthe access occurred.

FIG. 5 further illustrates that the web site structure 505 and theactivity 510 associated with the web site are connected to and establishthe means to generate the N-dimension representation 515. TheN-dimension representation establishes the dimensions needed torepresent the web site structure 505 information and the activity 510associated with the web site in matrices and structures.

The N-dimension representation 515 is connected to the anomalyfloatation device 520. The anomaly floatation device 520 establishes thelow-level rules and parameters by which the anomalies are detected. Theanomalies are the differences between the activity 510 associated withthe web site and the expected user activity based on the web sitestructure 505 (the difference between the designer intent andexpectation, and the actual site visitors behavior in a web site). Alldifference between the expected behavior and the actual behavior is ananomaly (to some extent), because the designer of the web site did notintend that action by the user. Not every unexpected action by a user isan anomaly worth fixing; however, many anomalies frustrate users and arein direct conflict with the goals of the web site owners. Theseanomalies may be described as follows:

For Anomaly 1, step-distance anomaly, the objective is to find ananomaly between the number of accesses (the number of hits) in aparticular step, and the distance between two objects. If an anomalyoccurs, it may suggest creating a link where it is absent.

Example: Referencing Table 1, assume the examining of the traffic fromobject 8 to object 10. Further assume, that the distance from object 8to 10 is 2, and that the distribution of hits among the various steps isas depicted in Table 1. TABLE 1 Illustrating step-distance anomaly.Steps taken to access object 10 from hits on object object 8 10 1 0 2 163 0 4 37 Total hits on object 10 61 Distance from object 8 to object 102There are two reasons why there is an anomaly in Table 1. The designerof the site intended that visitors will need 2 steps (2 clicks) in orderto get from object 8 to 10, and designed a site in which the minimumdistance between these objects is 2. Yet, a high number of hits occur instep 4 with relation to hits in step 2 (the distance). Moreover, a highnumber of hits are found in step 4 (37) with relation to the totalnumber of hits (61), while step 4 is not the distance.

An embodiment of the present invention include anomaly floatationdevices 520 attached to anomaly 1. These anomaly floatation devices 520notify when an anomaly occurs. Anomaly floatation device 520 X comparesthe number of hits arriving in any given number of steps to the numberof hits arriving in exactly the distance between two objects. Anomalyfloatation device 520 Y compares the number of hits arriving in anygiven number of steps to the total number of hits between two objects.Since two highly connected objects will experience a lot of inter nodetraffic at steps greater than the distance, the number of hits tocompensate for that needs to be discounted. Several methods may beemployed to discount the number of hits, including, but not limited tothe following:

1. Factoring in the number of routes between two objects (experimentshave shown this to be a restrictive measure).

2. Factor in the number of links to the examined page.

3. Factor in the number of links from the examined page.

The objective of Anomaly 2, the no-link anomaly, is to find whichobjects should have a link between each other, when there is no directlink between them. For Example: Assume the examination of the trafficfrom object 5 to object 8. Further assume that the distance from object5 to object 8 is 2 (there is no direct link between the two objects).The invention finds that the total number of hits from object 5 to 8 atstep 2 was 35, yet the range of hits from object 5 to any other objectranged from 10 to 45. This indicates that the invention might want toconsider adding a link from object 5 to object 8.

A more formal version of the no-link anomaly:

-   -   Version A:        -   Examine object I. For all objects, K, where distance(I,K)>1:            -   (# of hits from I to K distance 2 and up)>M*highest                number of hits from I to any object that has a distance                of 1 from I.            -   M is a number between A and 1, where A is the lowest                non-zero object number of hits distance 1 to I divided                by the highest number of hits from I to any object that                is distance 1 from I (10/45 in our example).

Anomaly 3, the dominant anomaly, is an arrival to an object of interestanomaly. For example, an object C is put in the center and it can beexamined. The objective is to find a dominant object of interest amongall the objects of interest that arrive at object C, at a given step.For example: let's put object C in the center (i.e., object C is thecentric object), and examine Table 2. TABLE 2 Illustrates the dominantobject arriving at a centric object anomaly. Arrival at object C fromobject number of hits 2 253 3 4 5 22 6 11 7 10As can be inferred from Table 2 above, object 2 is dominant, andtherefore is a candidate for a direct link from object C.The following definitions will be introduced, in order to define theanomaly:

-   -   C is the centric object.    -   D is the dominant object.    -   A₁-A_(n) refer to all other objects that are linked to object C        in step S.    -   SUM refers to the total number of hits from any object to object        C at step S.    -   T reflects the total number of hits between objects D and C (and        is taken from the total hits matrix).        An anomaly is reported if D-C hits at step S is more than X % of        SUM, unless:    -   There is a direct link between D and C, or    -   D-C hits at step S is less than 10% of T        Anomaly floatation device 520 A evaluates if more than X % of        the total traffic between two nodes happens at a certain step,        while Anomaly floatation device 520 B evaluates if more than Y %        of the traffic arriving at this object in a given step is from a        dominant node. Both Anomaly floatation devices 520 must evaluate        to true in order to find anomaly 3. Note that the above        exemplary illustration in Table 2 found a pattern of where only        one object is dominant. The concept of the dominant anomaly may        easily be extended to include additional patterns.

Anomaly 4, the deficiency anomaly, is as an arrival to object ofinterest anomaly. An object C is put in the center and examined. Theobjective is to find a “deficiency” anomaly among the objects thatarrive to object of interest C in a given step. One of the rules thatcan emerge from this anomaly is a recommendation to remove an existinglink. TABLE 3 Illustrates the deficiency object arriving at a centricobject of interest anomaly. Arrival to object C from object number ofhits 2 100 3 4 5 96 6 100 7 100For example: let's put object C in the center (i.e., object C is thecentric object). As can be inferred from Table 3, object 3 is deficient,and, therefore, the direct link from object C to object 3 (if it exists)is a candidate to be removed.

Using the definitions of anomaly 3, anomaly 4 can be formulated asfollows. The invention reports an anomaly if D-C hits at step S is lessthan X % of SUM, unless:

-   -   there is no direct link between objects D and C, and    -   step S is greater than 3        Note that the above exemplary illustration found a pattern of        where only one object is deficient. This anomaly may easily be        extended to include additional patterns.

Anomaly 5, the dominant-connect anomaly, may be viewed as a connected toobject of interest anomaly. An object is placed in the center andexamined. The objective is to find a dominant object of interest amongall the objects of interest that connect from object of interest C at agiven step. This Anomaly is similar to anomaly 3, the dominant anomaly,but it is being performed in the reverse direction.

Anomaly 6, the deficiency-connect anomaly, may be viewed as a connectedto object of interest anomaly, similar to the dominant-connect anomaly.An object C is placed in the center and examined. However, the objectiveis to find a “deficiency” anomaly among the objects that connect fromobject of interest C in a given step. One of the rules that can emergefrom this anomaly is a recommendation to remove an existing link. ThisAnomaly is similar to Anomaly 4, the deficiency anomaly, but it is beingperformed in the reverse direction.

Anomaly 7, the high access ratio anomaly, checks to see if certainobjects not directly linked together should be, based on the ratio oftraffic from immediate neighbors to more distant objects.

Assume the traffic to object 7 from object 5 is examined. Further assumethat the distance from object 7 to object 5 is 2 (there is no directlink between the two objects). The total number of hits to object 7 fromobject 5 at step 2 was 47, yet the range of hits to object 7 from anyother object ranged from 10 to 45. This indicates a need to consideradding a link from object 5 to object 7.

The links in a web site are unidirectional (as oppose tobi-directional). As a result, applying the rules on a page and the setof links and pages that can be reached from it may generate differentfindings than applying the rules on a page and the set of links andpages that reach to it. Anomaly 7 is, therefore, similar to anomaly 2.But, in contrast to anomaly 2, it is based on traffic referred into theobject and not on the traffic going out from the object. The Anomalyfloatation devices 520 setting is used in the computation of acomparison value, rather than being a comparison value itself. Thenumber of hits between two objects arriving in exactly the distancebetween them is called distanceHits. This anomaly compares distanceHitsbetween two objects, 2 or more steps apart, to the number of hits fromthe destination node's parents. Anomaly floatation devices 520determines exactly how to perform this comparison.

Anomaly 8, the threshold-dominant anomaly, identifies candidates fordirect linking. It assesses which object is referring the most traffic(termed the ‘dominant’) to a given page at various step distances.However, an additional constraint is imposed in that the utility of thelink must exceed a given threshold.

Anomaly 8 is similar to Anomaly 3, and is tested only if anomaly 3activated. As explained above, anomaly 3 found a strong associationbetween two pages. One possible recommendation in this case is toconnect the two pages with a link. However, one cannot add linksautomatically every time anomaly 8 is activated. It could be the casethat the site is so well connected, that adding a link will not add muchimprovement to the efficiency of the web site.

In anomaly 8, the web site may be represented as an electrical circuit.Each individual step in a linear path contributes a resistance of 1. Asingle path of N steps therefore has a resistance of N. Paths of varyinglengths are assumed to exist in parallel, and add as the reciprocal ofthe sum of individual reciprocals of path resistances. Possible pathoverlaps between paths of varying lengths are ignored. In short, eachlink is represented as a resistor in the electric circuit. Using circuitanalysis equations, the effective resistance between the two objects(=pages) are calculated. A direct link between the two pages are added,and a check is made for the new effective resistance between the twopages. A comparison is made of the two resistance to check how muchimprovement the new link provides in terms of reducing the effectiveresistance between the two pages. If it is below the threshold, adding alink will not be recommended. The intuition being, the more paths thereare (the more resistors there are) between the two pages, the less anadditional path (an additional resistor) will improve the site (reducethe effective resistance).

Anomaly 9, the complete-a-link anomaly, checks to see if certain objectsnot directly linked together should be, based on the ratio of trafficfrom immediate neighbors to more distant objects.

This anomaly is also an extension of anomaly 3 and is tested only ifAnomaly 3 is fired. As explained above, Anomaly 3 found a strongassociation between two pages. Anomaly 9 checks if adding a link betweenthe two pages is in par with the traffic at the originating node. Forexample, imagine that after applying anomaly 3 on two objects, object Aand object B, it is found that there is high association between the twoobjects. A check is made, whether adding a link is a viable option toreduce the number of clicks visitors need to make (other options mightbe grouping information, moving information from one page to the other,etc.). It is further assumed, in this example, that 1000 visitorsfollowed the links from object A to object B. However, the traffic oneach one of the outgoing links from object A is at least 10,000visitors. If a link cannot be added to object A (for example, object Ahas too much clutter or connections), it would not make sense to replaceany link with a link to object B, because this link will have much lesstraffic than the link that is removed.

Anomaly 9 assumes that if a direct link is added between two nodes, thenall the traffic, which went through these two objects, will traversethis link. It then compares this traffic with the traffic values on theexisting child objects of the originating node. If X % of the links haveless traffic than the projected traffic on the new link, Anomaly 9 isactivated.

The anomaly floatation device 520 is connected to the rule enginealgorithm 525 as illustrated in FIG. 5. The rule engine algorithm 525 isa rule based engine that establishes the rules by which the anomaliesfound by the anomaly floatation device 520 are grouped in preparationfor making recommendations on web site modification. Preferably, thesegroupings are in accordance with the patterns established by theactivity 510 associated with the web site and the expected activitybased on the web site structure 505. The anomaly floatation device 520may be considered to be utilizing rules, similar to the rule enginealgorithm 525, but at a lower level. Whereas the rule engine algorithm525 utilizes higher level rules and organizes the information forrepresentation and recommendations.

The rule based algorithm 525 is connected and is the means used togenerate matrices and structures 530. As detailed herein, there areseveral structures and matrices in which the information may beorganized by the rule based engine 525. These matrices and structures530 may be, but are not limited to, an elements data structure, asession step data structure, a SPUS structure, a TUS structure, a CLASSstructure, a TC structure, a distance matrix, a links-to matrix, alinks-from matrix, a total accesses-to matrix, a total access-frommatrix, and an access matrix. These data structures and matrices 530 areutilized to store and present statistical data about user interactionwith the web site. The data structures and matrices 530 may be dividedinto various categories and into the following groups:

-   -   1. Dimensions—provide knowledge about the total number, and size        of various components, allowing the determination of the        dimensions of various data structures.    -   2. Web site Structure—data structures that illustrate the web        site in terms of substance and connectivity.    -   3. Access statistics—provide information on various aspects of        visitor access patterns to the web site.    -   4. Session statistics—provide statistics about visitors access        patterns. As opposed to the access statistics data structures,        where individual accesses are examined, here the individual        accesses to sessions are grouped, and provide several data        representations that examine aspects of visitor behavior within        a session.    -   5. Aggregate statistics—provide intra-session statistics.        Having defined the groups, the data structures of each one of        the groups may be described.

The various aspects, variables, and data structures related todimensions are as follows:

-   -   1. session step data structure—the maximum number of steps in        any of the sessions is used to allocate memory and define the        various tables.    -   2. elements data structure—the number of elements (or number of        objects). This number is used to allocate memory and define the        various tables.    -   3. SPUS structure—the total number of Steps Per User Sessions.    -   4. TUS structure—the Total number of User Sessions.    -   5. Class structure—the Class for each object of interest in the        web site.    -   6. TC structure—the Total number of Classes in the web site.

Thus, the web site structure 505 may be closely described by data aboutthe connectivity of its objects of interest and other parameters asfollows:

-   -   1. Distance matrix—a two-dimensional matrix that stores the        shortest distance from one object to another in the site.    -   2. links-to matrix—a two-dimensional matrix that stores the        number of links to a certain object by a particular step. One        skilled in the art will recognize that it is common to represent        a matrix, especially in programming, by representing the first        object with the index 0, the second object with the index 1, and        so forth, by placing the indices representing the objects within        the “[ ]”. Thus, for example the objects may be represented as        follows in the links-to-matrix: the [3][2] element in the matrix        represents the number of objects from which one can get to the        4^(th) object of interest (index [3]) in three or less steps        (index [2]).    -   3. links-from matrix—a two-dimensional matrix that stores the        number of links from a certain object to other objects of        interest by a specific step or less.    -   4. The class of each object (which is determined by distance        from the base page).

The access matrix is one of the matrices that describes the interactionof the user with the web site (user session). The access matrices'parameters are as follows:

-   -   1. Access matrix—a three-dimensional matrix. Each element in the        matrix describes the number of hits that occurred from one        object to another at a certain step. The first dimension        designates the “from object”, the second dimension designates        the “to object”, and the third dimension designates the step.        Therefore, an element in the matrix describes the number of        accesses from the “from” object to the “to” object at a certain        step within the session.    -   2. total accesses-to matrix—the total number of accesses to a        certain object (no matter from where) in a particular step        within a session.    -   3. total accesses-from matrix—the total numbers of accesses from        a certain object (no matter to where) in a particular step        within the session.

Thus, the access matrix is a three dimensional matrix, where eachelement in the matrix describes the number of hits that occurred fromone object to another at a certain step. When filling up the matrix,direct hits are included as well as indirect hits. The term indirecthits mean hits from object A to object D via one or more other objects(let's say, objects B and C). An illustrative example is provided below.Assume the following session:

1=>2=>3=>4=>5

The user started the session by accessing object 1. Then he or sheaccessed object 2, 3, 4, and 5 by this order. Further assume thedistance between adjacent objects in the session is 1.

The Access matrix includes all the direct hits, which are:

1=>2; 2=>3; 3=>4; 4=>5

But it also includes the indirect hits. From object 1, there are thefollowing indirect hits:

1=>3; 1=>4; 1=>5

The rest of the indirect hits in this session are:

2=>4; 2=>5; 3=>5

One of these hits will be taken, 1=>5, and it will show how to updatethe access matrix to include this hit. The distance from object 1 andobject 5 is 4. Therefore, the corresponding entry will be incremented(from object 1 to object 5 at step 4) by 1.

Other aspects of the user's sessions, expressed in various averages, maybe described as follows:

-   -   1. The average number of steps in a session.    -   2. The average number of steps in sessions at which an object of        a certain class appears.    -   3. The average number of steps in sessions at which a certain        object of interest appears.    -   4. The average number of steps from the beginning of a session        until a particular object has been accessed may be expressed as        the object of interest vector. In this average, only sessions in        which the object of interest actually appeared are included.    -   5. The average steps from object of interest matrix is a vector        that stores the average number of steps from the point a        particular object has been accessed, until the end of the        session. In this average, only sessions in which the object of        interest actually appeared are included.    -   6. The object of interest close to start is a vector that stores        a number that describes how close a certain object is to the        start of a session. The number is a positive number and the        bigger it is, the closer the object is (on average) to the        beginning of a session.

Finally, the aggregate statistics are also summarized in matrices asfollows:

-   -   1. The numbers of accesses (or hits) a certain object incurred.    -   2. Total hits matrix is a two-dimensional matrix that stores the        total number of hits from one object to another. It is created        by “collapsing” the step dimension of the three-dimensional        access matrix into a two-dimensional matrix that includes only        the from object and to object dimensions. The from object A to        object B entry may be examined. All the entries corresponding to        step 1 to the maximum number of steps are added, and put it in        the new total hits matrix.    -   3. Total steps matrix is a two-dimensional matrix that stores        the total number of steps that were used in all the accesses        from one object to another. It is created by “collapsing” the        step dimension of the three-dimensional access matrix into a        two-dimensional matrix that includes only the “from” object and        “to” object dimensions. As opposed to the total hit matrix        discussed above, in the total steps matrix all hits are not        regarded as equal. Instead, a weight is assigned to each one of        the steps to allow compensation for the step dimension. In        examining the “from” object A “to” object B entry. It will be        assumed that at step 1 there were 43 hits, at step 2 there were        32 hits, and at step 3 there were 21 hits. The entry from object        A to object B in the total steps matrix will be:        (1*43)+(2*32)+(3*43), or 236.    -   4. The Step Median Calculation (SMC) matrix. This is a        two-dimensional matrix, the first dimension is the from object,        and the second is the to object. Each entry is the distance from        an object A, to an object B, divided by the average number of        steps detected between them. The average number of steps can be        determined by dividing the total number of steps from object A        to object B with the total number of hits from object A to        object B. Generally speaking, if the number in the SMC matrix is        close to 1, then the web site has a good link design, because        the site visitors followed the design which determine a certain        distance from one object to another. If the number in the SMC        matrix is close to 0, then something is wrong and an anomaly may        exist which needs correction.

In an alternative embodiment, the information from the web sitestructure 505 and the activity 510 associated with the web site, maymerely be maintained to process as necessary and generate suggestionsfor customizing the web site. Preferably this processing applies theanomaly flotation device and the rule based engine in conjunction withthe patterns established by the activity 510 associated with the website and the expected activity based on the site structure 505.

By establishing the data generated by the anomaly floatation device 520and the ruled based algorithm 525 into matrices and structures, the datais organized into an easy readable format for providing customizingsuggestions 535. After customizing suggestion have been established,they may be implemented automatically by one embodiment, implementedthrough human intervention by another embodiment, or offer a combinationof options for human intervention implementation and automaticimplementation of the customizing suggestions 535. The embodiment shownin FIG. 5 offers the combination of options for human interventionimplementation and/or automatic implementation of the customizingsuggestions 535.

In one exemplary embodiment the invention could implement thecustomizing suggestions 535 after each user activity 510. In thisexemplary embodiment the web site structure 505 would be customizedafter each activity 510 associated with the web site. This exemplaryembodiment would likely be implemented at the cost of processing time,but may find practical use in some applications.

In another exemplary embodiment, the invention could implement thecustomizing suggestions 535 after a preset amount of activity 510associated with the web site. This preset amount of activity may be setby the user or generated by other parameters.

Yet, in another exemplary embodiment, the invention could implement thecustomizing suggestions 535 at random times and not be dependent on theamount of activity 510 associated with the web site.

All the aforementioned exemplary embodiments may be implemented byalways basing the customizing suggestions 535 on the original web sitestructure. Thus regardless of the customization of the web sitestructure 505 that has occurred since the original web site structure505 was intact, future customization suggestions are based on theactivity 510 and the original web site structure 505, for generatingfuture customization suggestions 535.

Still other exemplary embodiments, may implement all the aforementionedembodiments by always basing the customizing suggestions 535 on the website structure 505 on a dynamic basis. Thus, every time the web sitestructure 505 is customized, whether automatically or through humanintervention, the next customization suggestions 535 will be based onthe activity 510 and the web site structure 505 at the time thecustomization suggestions 535 are generated.

Though certain of these anomalies and rules are described fully herein,one skilled in the art will realize that numerous others may becomeapparent and will be utilized in the future, in various embodiments ofthe invention. Likewise, the present invention has been described inrelation to particular embodiments which are intended in all respects tobe illustrative rather than restrictive. Those skilled in the art willunderstand that the principles of the present invention may be appliedto, and embodied in, various program modules for execution on differingtypes of computers and/or equipment, operating in differing types ofnetworks, regardless of the application. Alternate embodiments willbecome apparent to those skilled in the art to which the presentinvention pertains without departing from its spirit and scope.Accordingly, the scope of the present invention is described by theappended claims and supported by the foregoing description.

1. A method for modifying the structure of a network accessible web sitebased on an analysis of activity associated with the web site, themethod comprising the steps of: identifying a website comprising aplurality of objects of interest; identifying one or more structuralrelationships for navigating between the plurality of objects ofinterest; identifying sequential user accesses to the plurality ofobjects of interest; maintaining data representative of said objects ofinterest, structural characteristics, and user accesses; and applying aset of rules to said data to generate a recommendation for modifying oneor more of the structural relationships.
 2. The method of claim 1,wherein the web site comprises a plurality of web pages.
 3. The methodof claim 1, wherein the step of identifying one or more structuralrelationships for navigating between the plurality of objects ofinterest further comprises the steps of: accessing said web site via anetwork address; parsing structure data of said web site to identifystructural relationships for navigating between objects of interest; andstoring data representative of said structural relationships.
 4. Themethod of claim 1, further comprising the step of modifying one or moreof the structural relationships.
 5. The method of claim 1, wherein thestep of identifying sequential user accesses to the plurality of objectsof interest comprises the steps of: identifying a user of said website;assembling the user accesses of a single user into a user session;mapping data associated with said user session; and storing said dataassociated with said user session in a data storage means.
 6. The methodof claim 5, wherein the step of identifying sequential user accesses tothe plurality of objects of interest comprises the steps of: accessing aweb log for a web server hosting the website; and parsing the web log toidentify user accesses to one or more of the plurality of objects ofinterest for a user.
 7. An apparatus for modifying the structure of anetwork accessible web site, the apparatus comprising: a communicationsunit for establishing communications with said web site; an input foraccepting data representative of activity associated with said web siteand a structure associated with said web site; a memory buffer forproviding storage for said structure and said activity; a processingunit for applying a set of rules to said activity and said structure;generating a recommendation; and an output for providing saidrecommendation.
 8. The apparatus of claim 7, wherein the processing unitis further adapted for: identifying a plurality of objects of interestassociated with a web site; identifying one or more structuralcharacteristics relating the plurality of objects of interest;identifying sequential user accesses to the plurality of objects ofinterest; maintaining data representative of said objects of interest,structural characteristics, and user accesses; and modifying saidstructure of said web site based on said recommendation; and an outputfor providing said recommendation.
 9. A method for modifying thetransitional relationships between states of an interactive system basedon an analysis of activity associated with the system, the methodcomprising the steps of: identifying a plurality of states of interestassociated with an interactive system; identifying at least onetransitional relationship among the plurality of states of interest;identifying at least one sequential occurrence of the plurality ofstates of interest during system operation; maintaining datarepresentative of said states, transitional relationships, andoccurrences; and applying a set of rules to said data to generate arecommendation for changing the transitional relationships.
 10. Themethod of claim 9, wherein said states of interest are representative ofobjects in a user interface and the sequential occurrences identifysequential user interaction with the user interface.
 11. The method ofclaim 9, wherein the interactive system is a web site, the states ofinterest are objects on the web site, the transitional relationships arehyperlinks, and the sequential occurrences are user accesses to the website.